package com.ruoyi.system.domain;

import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;

/**
 * 商家微信公众号配置，定义公众号类型、消息接收规则及推送状态对象 merchant_wechat_official_account
 *
 * @author ruoyi
 * @date 2025-05-13
 */
@Data
@ApiModel("商家微信公众号配置，定义公众号类型、消息接收规则及推送状态")
public class MerchantWechatOfficialAccount extends AbdulBaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 微信公众号配置表唯一标识ID，主键自增
     */
    @ApiModelProperty("微信公众号配置表唯一标识ID，主键自增")
    private Long id;

    /**
     * 公众号类型（service=服务号，subscription=订阅号，mini_program=关联小程序，默认为服务号）
     */
    @Excel(name = "公众号类型", readConverterExp = "s=ervice=服务号，subscription=订阅号，mini_program=关联小程序，默认为服务号")
    @ApiModelProperty("公众号类型（service=服务号，subscription=订阅号，mini_program=关联小程序，默认为服务号）")
    private String accountType;

    /**
     * 公众号名称（如"XX品牌服务号"）
     */
    @Excel(name = "公众号名称")
    @ApiModelProperty("公众号名称")
    private String accountName;

    /**
     * 公众号AppID（如"wx1234567890abcdef"），唯一标识公众号
     */
    @Excel(name = "公众号AppID")
    @ApiModelProperty("公众号AppID，唯一标识公众号")
    private String appId;

    /**
     * 接收人类型（individual=指定接收人，role_based=按角色接收）
     */
    @Excel(name = "接收人类型", readConverterExp = "i=ndividual=指定接收人，role_based=按角色接收")
    @ApiModelProperty("接收人类型（individual=指定接收人，role_based=按角色接收）")
    private String receiverType;

    /**
     * 指定接收人（如"张三"），当receiver_type为individual时生效
     */
    @Excel(name = "指定接收人")
    @ApiModelProperty("指定接收人，当receiver_type为individual时生效")
    private String receiverIndividual;

    /**
     * 接收消息角色（多选，如"super_admin,manager"）：all（全部角色），super_admin（超级管理员），server（服务员），cashier（收银员），manager（总经理）
     */
    @Excel(name = "接收消息角色")
    @ApiModelProperty("接收消息角色（多选，如\"super_admin,manager\"）：all（全部角色），super_admin（超级管理员），server（服务员），cashier（收银员），manager（总经理）")
    private String receiverRole;

    /**
     * 是否启用推送消息（0=禁用，1=启用，默认为启用）
     */
    @Excel(name = "是否启用推送消息", readConverterExp = "0==禁用，1=启用，默认为启用")
    @ApiModelProperty("是否启用推送消息（0=禁用，1=启用，默认为启用）")
    private Integer isPushEnabled;

    /**
     * 推送状态描述（如"系统维护期间暂停推送"）
     */
    @Excel(name = "推送状态描述")
    @ApiModelProperty("推送状态描述")
    private String pushStatusDescription;

    /**
     * 公众号管理员（如"李四"）
     */
    @Excel(name = "公众号管理员")
    @ApiModelProperty("公众号管理员")
    private String contactPerson;

    /**
     * 管理员联系电话（如"13800138000"）
     */
    @Excel(name = "管理员联系电话")
    @ApiModelProperty("管理员联系电话")
    private String contactPhone;

    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    private String phone;
}